<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>字符串</title>
    <style>
        pre {
            font-size: 15px;
        }
    </style>
</head>

<body>
    <script>
        // 1. "false"["slice"].length + false=? 为什么
        // 2. 封装一个函数实现字符串翻转。
        // 3. 字符串 digite = "0123456789", 把前 5 个字符分割出来， 返回个单字符的数组, 注意， 返回数组里面的数字是字符串类型,要得到['5', '6', '7', '8', '9']
        // 4.已知有字符串 foo=”get-element-by-id”,写一个 function 将其转化成驼峰表示法”getElementById”.
        // 5.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的所有"天"的下标输出
        // 6.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"替换成"日"
        // 7.解析 URL Params 为对象，例如(https://www.baidu.com/s?ie=UTF-8&wd=letcode)得到{ie: 'UTF-8', wd: 'letcode', url: 'https://www.baidu.com/s'}
        // 8.查找字符串中(abbcccddddd)出现最多的字符和个数
    </script>

    <h1>1.</h1>
    <pre>2+0=2;因为slice()是两个默认形参、即"false"["slice"].length为2、+flase被隐性转换为数字0即为0、故2+0=2</pre>

    <h1>2.</h1>
    <pre>
      方法一：
      function reverseStr(str) {
        var s = '';
        for (var i = str.length - 1; i >= 0; i--) {  //倒着遍历将元素添加到字符串s中、即可实现反转。
            s += str[i];
        }
        return s;
    }
    console.log(reverseStr(str));


      方法二：
      function reverseStr(str) {
      var str1 = str.split(""); //转化为数组
      var str2 = str1.reverse(); //反转
      var str3 = str2.join('');  //转化为字符串
      return str3;
    }
    console.log(reverseStr(str));
    </pre>

    <h1>3.</h1>
    <pre>
      var digite = "0123456789";
      var res = digite.slice(5).split(''); //从下标为5开始截取、然后转化为数组即可。
      console.log(res)
    </pre>

    <h1>4.</h1>
    <pre>
      var foo = 'get-element-by-id';
      var str = ''; //声明一个空字符串str

      function tf(foo) {
          foo.split('-').forEach(function(ele, index, arr) { //转换为数组删掉'-'、forEach遍历数组
              index > 0 ? str += ele.replace(ele[0], ele[0].toLocaleUpperCase()) : str = ele; // 下标大于0的、为true、 将元素的第一个字符串替换成大写的加入到str、 
                                                                                                          // 为false、将元素直接加入到str中。
          });
          return str;
      }
      console.log(tf(foo));
    </pre>

    <h1>5.</h1>
    <pre>
      var str = "今天是什么鬼天气，这么热，明天要去游泳！";
        
      function xb(string, mc) { // 定义一个函数形参为字符串、要找到东西 如 '天'
          var num = []; // 一个空数组num
          for (var i = 0; i < str.length; i++) {
              if (str[i] == mc) { // 找到时
                  num.push(i); // 将下标值加到空数组中
              }
          }
          return num;
      }
      console.log(xb(str, '天'));
    </pre>

    <h1>6.</h1>
    <pre>
      var str = "今天是什么鬼天气，这么热，明天要去游泳！";

      function xb(string, mc, mc2) { //  定义一个函数形参为字符串、要找到东西,如 '天';替换的东西、如 '日'
          for (var i = 0; i < str.length; i++) {
              if (str[i] == mc) { // 有这个东西 '天' 时
                  str = str.replace(mc, mc2); // 将'天'替换成'日'
              }
          }
          return str;
      }
      console.log(xb(str, '天', '日'));
    </pre>

    <h1>7.</h1>
    <pre>
      var dizhi = 'https://www.baidu.com/s?ie=UTF-8&wd=letcode';
      var dizhiurl = dizhi.split('?');  // 得到['https://www.baidu.com/s', 'ie=UTF-8&wd=letcode']
      var url = dizhiurl[0]; // 将https://www.baidu.com/s 赋给 url
      var key = dizhiurl[1].split('&'); // 下标为1再操作 ['ie=UTF-8', 'wd=letcode']
      var ie = key[0].split('=')[1]; // ['ie','UTF-8']  将UTF-8 赋给 ie
      var wd = key[1].split('=')[1]; // ['wd','letcode']  将letcode 赋给 wd
      var obg = {
        ie,
        wd,
        url
    };  // 将ie、wd、url加到obg这个对象里
    console.log(obg);
    </pre>

    <h1>8.</h1>
    <pre>
      var str = 'abbcccddddd';
      var res = {}; // 一个空对象装结果
      for (var i = 0; i < str.length; i++) {
           if (res[str[i]]) {
           res[str[i]] += 1; // 为true 属性值加1
           } else {
              res[str[i]] = 1; // 为false 将该元素属性值设为1
          }
      }
      var max = 0; // 设最大数为0
      var code; // 一个待赋值元素
      for (var key in res) {
           if (max < res[key]) { 
               max = res[key]; // 将新的最大值赋给max
               code = key // 属性赋给code
           }
      }
       console.log(code + "出现最多次", "出现了" + max + "次");
    </pre>
</body>

</html>